import random
import pytest

# 0 代表女性 1代表男性
sex = random.randint(0,1)
print('\n')
print(sex)

@pytest.mark.skipif(condition=sex==1,reason='穷')
def test_add_cart():
    print("添加购物车")
"""
skipif：根据条件跳过测试用例
condition：跳过田间。如果说sex是1，这条用例就不执行了
reason：跳过原因
"""
@pytest.mark.skip(reason='不买')
def test_add_cart2():
    print("无条件跳过")


# 只有一组参数的参数化
@pytest.mark.parametrize('phone',['1689878712','15857681231','15858772212'])
def test_verify_code(phone):
    print("测试验证码")
    print(f"获取{phone}的验证码")
    """
    第一次运行：
    测试验证码
    获取1689878712的验证码
    
    第二次运行：
    测试验证码
    获取15857681231的验证码
    
    第三次运行：
    测试验证码
    获取15858772212的验证码
    """

# 多组参数的参数化
@pytest.mark.parametrize('phone,code,address',[('156878886781','1682','shanghai'),('16898787682','1972','beijing'),('15867678682','1907','shenyang'),('168685862','0986','changsha')])
def test_get_phoneCode(phone,code,address):
    print("测试验证码")
    print("当前手机号码是：%s，验证码为：%s，地区是：%s"%(phone,code,address))
    """
    phone,code是参数化
    第一次运行：
    测试验证码
    当前手机号码是：156878886781，验证码为：1682
    
    第二次运行：
    测试验证码
    当前手机号码是：16898787682，验证码为：1972
    
    第三次运行
    测试验证码
    当前手机号码是：15867678682，验证码为：1907
    
    第四次运行
    测试验证码
    当前手机号码是：168685862，验证码为：0986
    """

# fixture夹具

@pytest.fixture()
def login():
    print('用户登录')

def test_get_order_list(login):  # 需要用户登录
    print("查看订单列表")
"""
用户登录
查看订单列表
"""

def test_add_address(login):  # 需要用户登录
    print("添加收获地址")

def test_browser_goods():  # 不需要用户登录
    print('浏览商品')

def test_001(login):
    print("测试001")

"""
把夹具当成方法传到其他的测试用例里面
就会先执行夹具里的代码块，再执行用例本身
"""

class TestDemo2:
    @pytest.fixture()
    def login(self):
        print("登录")

    def test_001(self):
        print("我是test001")

    def test_002(self,login):
        print("我是test002")













